#include "loginmw.h"
#include "ui_loginmw.h"

bool isAdminLoggedIn = false; // 管理员是否已登录

LoginMW::LoginMW(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::LoginMW)
{
    ui->setupUi(this);
    mainWindowInit();
}

LoginMW::~LoginMW()
{
    delete ui;
}
//自定义软键盘
void LoginMW::mainWindowInit()
{
    //this->setWindowFlags(Qt::FramelessWindowHint); // 设置无边框
    ui->centralwidget->installEventFilter(this);   // 安装事件过滤器

    eInput = new easyInput(this);      //输入法实例化
    eInput->installEventFilter(this);  //安装事件过滤器
    inputFlag = true;
    ui->centralwidget->setFocus();   // 界面初始化时，先把焦点在menu处，否则输入法会先出现
}

bool LoginMW::eventFilter(QObject *watched, QEvent *event)
{
    if(watched == ui->centralwidget){
        static QPoint point;
        switch (event->type()) {
        case QEvent::MouseButtonPress:
            point.setY(cursor().pos().y());     // 记录按下点的y坐标
            eInput->hide();
            break;
        default:
            break;
        }
    }
    if(watched == eInput)
        switch (event->type()) {
        case QEvent::Hide:
            break;
        case QEvent::Show:
        {
            if(inputFlag == false){
                eInput->hide();
                return false;
            }
            //ui->textEdit->moveCursor(QTextCursor::End);//自动滑动到最后一行
        }
            break;
        default:
            break;
        }
    return QWidget::eventFilter(watched,event);//将事件传递给父类
}

void LoginMW::slotHideInput()
{
    eInput->hide();
}

//登录
void LoginMW::on_btn_login_clicked()
{
    QString password = ui->lineEdit_passwd->text();
    QString account = ui->lineEdit_user->text();
    if ((account == "ncjtxy") && (password == "123456"))
    { // 假设管理员密码为admin123
        isAdminLoggedIn = true;
        QMessageBox::information(this, "成功", "登录成功！");
    }
    else if ((account != "ncjtxy") && (password == "123456"))
    {
        QMessageBox::critical(this, "错误", "账号错误！");
    }
    else if ((account == "ncjtxy") && (password != "123456"))
    {
        QMessageBox::critical(this, "错误", "密码错误！");
    }
    else
    {
        QMessageBox::critical(this, "错误", "请重新输入管理员账号密码！");
    }
}

//返回
void LoginMW::on_btn_back_clicked()
{
    //所以可以利用此函数获取当前窗口的父窗口对象指针
    QWidget *parent = this->parentWidget();
    parent->show();//把之前父界面的隐藏状态改为显示状态，显示父界面
    this->close();//关闭当前界面
}
